/**
 * 封装 axios 请求模块
 */
import axios from 'axios'
import store from '@/store'

import JSONBig from 'json-bigint'

// console.log(JSON.parse(jsonStr)) // 1245953273786007600
// JSON.stringify()
// const jsonStr = '{ "art_id": 1245953273786007552 }'

// JSONBig 可以处理数据中超出 JavaScript 安全整数范围的问题
// console.log(JSONBig.parse(jsonStr)) // 把 JSON 格式的字符串转为 JavaScript 对象

// 使用的时候需要把 BigNumber 类型的数据转为字符串来使用

// 创建一个axios实例对象
const request = axios.create({
  baseURL: 'http://toutiao.itheima.net', // 基础路径

  transformResponse: [
    function(data) {
      try {
        return JSONBig.parse(data)
      } catch (err) {
        return data
      }
    },
  ],
})

// 配置请求拦截器

// 请求拦截器   <===========增加
request.interceptors.request.use(
  function(config) {
    // config ：本次请求的配置对象
    // config 里面有一个属性：headers
    const { user } = store.state
    if (user && user.token) {
      config.headers.Authorization = `Bearer ${user.token}`
    }
    return config
  },
  function(error) {
    return Promise.reject(error)
  }
)

// 暴露出去
export default request
